<?php
namespace Home\Logic\OrderLogic\AgentPackageOrder;

class PackageOrderReward {
    
    /**
     * 代理进货分红简介:
     *
     *   单位 (百分比 或 元)
     *   100
     *
     *       20 -- 厂家
     *   20  10 -- 一级 --> 100买出 --> 80
     *   30  10 -- 二级 --> 100买出 --> 70
     *   40
     */
    
    
    /**.
     * 计算一组用户的分成
     * @param array $uids
     * array(
     * 	1,2,3
     * )
     * @param array $percent 74:10:5
     * array(
     * 	74,10,5
     * )
     * @param number $bonus 1000.00
     * @return multitype:string
     * array(
     * 		1 => 550.00,
     * 		2 => 30.00,
     *		3 => 12.00,
     * )
     */
    public static function calcSimpleRewardBonus($uids, $percent, $bonus) {
        $bon = array();
        if ( $uids ) {
            for( $i=0; $i<count($uids); $i++ ) { // 计算每个用户的分成
                $bon[$uids[$i]] = sprintf("%.2f", $percent[$i]/100*$bonus);
            }
        }
        return $bon;
    }
    
    /**
     * 用折扣数组求返佣比例
     * @param array $discount 各级的折扣数组
     * @param int $agentLevel 计算到第几级的返佣比例(-1为一级购买),不传取各级的全部返佣比例(不设置也可用array_slice($rewardPercent, 0, $agent['level']*1)外部截取)
     * @return multitype:number unknown
     */
    public static function calcRewardPercentByDiscount( $discount, $agentLevel ) {
        $rewardPercent = array(); // 分佣比例
        for ( $i = 0; $i<count($discount); $i++ ) { // 一级比例、二级比例...
            if ( $i == 0) {
                $rewardPercent[] = $discount[$i]; // 厂家比例
            }
            if ( isset($discount[$i+1]) and ($discount[$i+1] - $discount[$i])>0 ) {
                $rewardPercent[] = $discount[$i+1] - $discount[$i];
            } else {
                break;
            }
        }
        if ( isset($agentLevel) ) { // 设置了计算到第几级
            if ( $agentLevel < 0 ) { // 一级购买不返佣
                $rewardPercent = array(
                    0 => array_sum($rewardPercent), // 厂家全拿
                );
            } else {
                $remainPercent = array_sum(array_slice($rewardPercent, $agentLevel+2)); // 剩余比例之和
                $rewardPercent = array_slice($rewardPercent, 0, $agentLevel+2);
                $rewardPercent[0]+=$remainPercent; // 剩余比例加入厂家
            }
        }
        return $rewardPercent;
    } 
}